// permission.js
import { useUserStore } from '@/stores/index.js'

// 路由白名单，不需要登录就可以访问的页面
const whiteList = [
    '/', // H5的首页，通常需要能被直接访问
    '/pages/individualSpace/index', // H5的首页，通常需要能被直接访问
    '/pages/family/index/index', // H5的首页，通常需要能被直接访问
    '/pages/detail/index', // 墓地详情
    '/pages/sacrifice/index', // 祭奠
    '/pages/register/index', // 注册
    '/pages/article/index', // 文章列表
    '/pages/article/detail/index', // 文章详情
    '/pages/searchPage/index', // 搜索
    '/pages/individualSpace/festivals', // 节日
]

function hasPermission(url) {
    const userStore = useUserStore();
    // 1. 如果在白名单中，直接放行
    if (whiteList.includes(url)) {
        return true;
    }

    // 2. 如果不在白名单中，检查是否有token
    if (!userStore.token) {
        return false;
    }
    
    // 3. 有token，理论上是有效的（因为App.vue启动时已验证），直接放行
    return true;
}

export default function () {
    const list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];
    list.forEach(item => {
        uni.addInterceptor(item, {
            invoke(args) {
				console.log(args)
                if (hasPermission(args.url.split('?')[0])) {
                    // 放行
                    return true;
                } else {
					return true;
                    // 拦截，并跳转到登录页
                    // uni.showToast({
                    //     title: '请先登录',
                    //     icon: 'none'
                    // });
                    // return false;
                }
            },
            fail(err) {
                console.error('Interceptor error:', err)
            }
        })
    })
}